package com.vanysoft.business.index.action;

import com.vanysoft.business.index.action.demo.UserInfoDemo;
import com.vanysoft.business.index.service.IndexService;
import com.vanysoft.business.sys.entity.UserInfo;
import com.vanysoft.framework.aop.VanySoftValidation;
import com.vanysoft.framework.base.action.BaseController;
import com.vanysoft.framework.config.mvc.SessionUser;
import com.vanysoft.framework.exception.VanySoftBaseException;
import com.vanysoft.framework.utils.JSONResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.Map;

/**
 * 类名称：IndexAction
 * 类描述：用户登录、个人首页
 * 创建人：SharpClaw_x
 * 创建时间：2017年5月3日 下午6:09:57
 * 修改人：SharpClaw_x
 * 修改时间：2017年5月3日 下午6:09:57
 * 版本信息：@version 1.0
 * Copyright (c) 2017SharpClaw-版权所有
 * 修改备注：
 */
@Controller
@RequestMapping("/index")
@Deprecated
public class IndexAction extends BaseController {


    @Autowired
    IndexService indexService;


    /**
     * Function Name               queryUserInfo
     *
     * @return
     * @throws VanySoftBaseException
     * @description 个人资料加载
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年5月23日 上午11:47:05          SharpClaw_x                     Initial
     * *********************************************************************
     */
    @RequestMapping(value = "queryUserInfo")
    @ResponseBody
    public JSONResponse queryUserInfo(@SessionUser UserInfo userInfo) throws VanySoftBaseException {
        Map map = indexService.queryUserinfo(userInfo.getId());
        return new JSONResponse(map);
    }


    /**
     * Function Name               updateUserInfo
     *
     * @param request
     * @param userInfoDemo
     * @param result
     * @return
     * @throws VanySoftBaseException
     * @description 更新用户的基础信息
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年6月29日 下午3:48:10           SharpClaw_x                     Initial
     * *********************************************************************
     */
    @RequestMapping(value = "/updateUserInfo")
    @VanySoftValidation
    @ResponseBody
    public JSONResponse updateUserInfo(HttpServletRequest request, @Valid UserInfoDemo userInfoDemo,
                                       BindingResult result) throws VanySoftBaseException {
        indexService.updateUserInfo(userInfoDemo);
        return new JSONResponse();
    }


    /**
     * Function Name               updateUserPassword
     *
     * @return
     * @throws VanySoftBaseException
     * @description TODO(修改用户密码)
     * Modify History:              Date             Programmer       Notes
     * ---------        ---------------  ---------
     * 2017年5月23日 下午9:07:57          SharpClaw_x                     Initial
     * *********************************************************************
     */
    @RequestMapping(value = "updateUserPassword")
    @ResponseBody
    public JSONResponse updateUserPassword(@SessionUser UserInfo userInfo, String oldPassword, String newPassword) throws VanySoftBaseException {
        String rspCode = indexService.updateUserPassword(userInfo.getId(), oldPassword, newPassword);
        return new JSONResponse(rspCode);
    }


}
